package com.gdssoft.framework.service.system;
/*
 *  捷达世软件(深圳)有限公司
 *  Copyright (C) 2008-2010 ShenZhen JieDaShi Software Limited Company. 
*/

import java.util.HashMap;
import java.util.List;
import java.util.Set;

import com.gdssoft.framework.model.system.AppRole;
import com.gdssoft.framework.model.system.Employee;
import com.gdssoft.core.exception.ExistException;
import com.gdssoft.core.exception.NotCompleteException;
import com.gdssoft.core.exception.NotExistException;
import com.gdssoft.core.service.BaseService;

public interface AppRoleService extends BaseService<AppRole>{
	//public AppRole getByRoleName(String roleName);
	public AppRole getByRoleCode(String roleCode);
	
	/**
	 * 保存（新增、更新）
	 * @param appRole
	 * @return 保存之后的实体
	 * @throws NotCompleteException 输入信息不完整
	 * @throws ExistException 角色已存在：roleCode不允许重复
	 * @throws NotExistException 更新对象不存在
	 */
	public AppRole save(AppRole appRole) throws NotCompleteException, ExistException, NotExistException;

	/**
	 * 移除
	 * @param roleId 
	 * @throws NotExistException 移除对象不存在
	 */
	public Boolean remove(Long roleId) throws NotExistException;
	/**
	 * 复制新增，新增的角色将拥有和原角色一样的权限
	 * @param appRole
	 * @return 复制新增之后的实体
	 * @throws NotCompleteException 输入信息不完整
	 * @throws ExistException 角色已存在：roleCode不允许重复
	 * @throws NotExistException 更新对象不存在
	 */
	public AppRole copy(AppRole appRole) throws NotCompleteException, ExistException, NotExistException;
	
	/**
	 * 获取安全认证的数据源
	 * @return
	 */
	public HashMap<String,Set<String>>getSecurityDataSource();
	
	/**
	 * 
	 */

}
